import java.util.*;
/**
 * 基于优先级堆的队列
 */
public class PriorityQueueLearn {
    public static void main(String[] args) {
        // 创建一个优先队列，默认自然顺序
	PriorityQueue<Integer> minQueue = new PriorityQueue<>();

        // 添加元素
	minQueue.add(5);
	minQueue.add(3);
	minQueue.add(4);


        // 查看队列头部元素
	System.out.println("first = " + minQueue.peek());

        // 移除队列头部元素
	minQueue.remove();

        // 查看队列剩余元素
	System.out.println("first = " + minQueue.peek());

        // 添加新的元素

        // 遍历队列



	// 创建反过来的
	PriorityQueue<Integer> maxQueue = new PriorityQueue<Integer>(Comparator.reverseOrder());
	
	maxQueue.add(2);
	maxQueue.add(3);
	maxQueue.add(4);

	System.out.println(maxQueue.peek());
	}

}
